package com.sc.nft.admin.request;

import com.sc.nft.entity.vo.salvageEvents.AdminAddAalvageEventsDetailsVO;
import com.sc.nft.enums.NFTProductShowSalvagePrefectureEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

@Data
public class AdminAddSalvageEventsRequest {


    @ApiModelProperty(value = "活动名称", required = true)
    @NotBlank(message = "活动名称不能为空")
    private String eventsName;

    @ApiModelProperty(value = "活动开始时间", required = true)
    @NotBlank(message = "活动开始时间不能为空")
    private String beginTime;

    @ApiModelProperty(value = "活动结束时间", required = true)
    @NotBlank(message = "活动开始时间不能为空")
    private String endTime;

    @ApiModelProperty(value = "封面图", required = true)
    @NotBlank(message = "封面图不能为空")
    private String coverImage;

    @ApiModelProperty(value = "规则图片", required = true)
    @NotBlank(message = "规则图片不能为空")
    private String regularImage;

    @ApiModelProperty(value = "关联藏品", required = true)
    private List<AdminAddAalvageEventsDetailsVO> collectionList;

    @ApiModelProperty(value = "排序", required = true)
    @NotNull(message = "排序不能为空")
    private Integer sort;

    @ApiModelProperty(value = "活动总量", required = true)
    @NotNull(message = "活动总量不能为空")
    private Integer sumCount;

    @ApiModelProperty(value = "个人上限", required = true)
    @NotNull(message = "个人上限不能为空")
    private Integer userCount;

    @ApiModelProperty(value = "单次分解上限")
    @Range(min = 1, max = 20, message = "单次分解不在区间范围内")
    @NotNull(message = "单次分解上限不能为空")
    private Integer singleCount;

    /**
     * 展示专区
     */
    @ApiModelProperty(value = "展示专区  ROUGH_STONE:原石专区 ECOLOGY:生态专区 TICKET_EXCHANGE:门票兑换", required = true)
    private NFTProductShowSalvagePrefectureEnum showSalvagePrefecture;

    @ApiModelProperty(value = "分解总量系数")
    @NotNull(message = "分解总量系数不能为空")
    private Integer sumCountCoefficient;

    @ApiModelProperty("是否消耗共识度")
    @NotNull(message = "是否消耗共识度不能为空")
    private Boolean consumeConsensus;

}
